﻿using System;
using System.Collections.Generic;
using System.Text;

namespace NP.BPMReportPlatform.Reports.CommonApprovalProcessReport.Dtos
{
    public class GetCommonApprovalProcessInput : PagedAndSortedRequestDto
    {
        /// <summary>
        /// 单据号
        /// </summary>
        public string InstanceNumber { get; set; }

        /// <summary>
        /// 流程主题
        /// </summary>
        public string Topic { get; set; }

        /// <summary>
        /// 创建者
        /// </summary>
        public string AddUserName { get; set; }

        /// <summary>
        /// 流程类型
        /// </summary>
        public string FlowType { get; set; }

        /// <summary>
        /// 单据状态
        /// </summary>
        public List<string> OrderStatus { get; set; }

        /// <summary>
        /// 制单日期（开始节点）
        /// </summary>
        public DateTime? StartCreationTime { get; set; }

        /// <summary>
        /// 制单日期（结束节点）
        /// </summary>
        public DateTime? EndCreationTime { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public List<string> BTID { get; set; } = new List<string>();

        /// <summary>
        /// 是否查询所有数据
        /// </summary>
        public bool IsQueryAll { get; set; }

        public List<FieldsSearchModel> SearchItems { get; set; } = new List<FieldsSearchModel>();

        public string Url { get; set; }

        public string Authorization { get; set; }
    }

    public class FieldsSearchModel
    {
        public int SortIndex { get; set; }

        public string SearchStr { get; set; }

        public bool IsAccurate { get; set; }

        /// <summary>
        /// 字段类型 text=文本型，date=日期类型，用于设置搜索框，select-single=下拉框 单选，select-multiple 下拉框多选
        /// </summary>
        public string FieldType { get; set; }

        public string StartTime { get; set; }

        public string EndTime { get; set; }

        public List<string> SearchArr { get; set; } = new List<string>();

        public string FieldCombine { get; set; }

        public string Field { get; set; }

        public List<object> SearchObjArr { get; set; } = new List<object>();
    }
}
